/*
 * @Copyright: Copyright (c) 2030 吴周海
 * @Author: wzh200x@126.com
 * @Date: 2025-10-13 17:01:13
 * @LastEditors: wzh200x@126.com
 * @LastEditTime: 2025-10-27 14:19:58
 * @FilePath: \gogamewebserver\goGameWebServer\api\avatar\v1\avatar.go
 * @Description: 文件功能描述
 */
package v1

import "github.com/gogf/gf/v2/util/gmeta"

type AvatarCreateReq struct {
	gmeta.Meta `path:"/avatar/create" method:"post" tags:"创建角色" `
	AccountId  int    `p:"account_id" v:"required"`
	AvatarName string `p:"name"`
	Data       string `p:"data" v:"required" dc:"角色数据需要前端进行压缩,压缩方法在服务器代码doc目录下"`
}

type AvatarCreateRes struct {
	gmeta.Meta `mime:"application/json" example:"{id:0, name:'', data:'', useServer:0, createTime: 0, credential: '', iv: '}"`
	Id         int    `json:"id" dc:"角色id"`
	Name       string `json:"name" dc:"角色名称"`
	Data       string `json:"data" dc:"角色数据 json格式"`
	UseServer  int    `json:"useServer" dc:"是否使用服务器数据"`
	CreateTime int64  `json:"createTime" dc:"创建时间"`
	Credential string `json:"credential" dc:"兼容参数,废弃"`
	Iv         string `json:"iv" dc:"兼容参数,废弃"`
}

type AvatarQueryReq struct {
	gmeta.Meta `path:"/avatar/query" method:"post" tags:"查询角色"`
	AccountId  int `p:"account_id" v:"required"`
}

type AvatarQueryRes struct {
	gmeta.Meta `mime:"application/json" example:"{code:0, message:'', data:{id:0, name:'', data:'', useServer:0, createTime: 0, credential: '', iv: '}}"`
	Id         int    `json:"id" dc:"角色id"`
	Name       string `json:"name" dc:"角色名称"`
	UseServer  int    `json:"useServer" dc:"是否使用服务器数据"`
	Data       string `json:"data" dc:"角色数据 json格式"`
	CreateTime int64  `json:"createTime" dc:"创建时间"`
	Credential string `json:"credential" dc:"兼容参数,废弃"`
	Iv         string `json:"iv" dc:"兼容参数,废弃"`
}

type AvatarUpdateReq struct {
	gmeta.Meta `path:"/avatar/update" method:"post" tags:"更新角色数据" `
	AccountId  int    `p:"account_id" v:"required" dc:"账号id"`
	AvatarId   int    `p:"avatar_id" v:"required" dc:"角色id"`
	Data       string `p:"data" v:"required" dc:"角色数据 json格式 角色数据需要前端进行压缩,压缩方法在服务器代码doc目录下"`
}

type AvatarUpdateRes struct {
	gmeta.Meta `mime:"application/json" example:"{code:0, message:'', updateTime: 0}"`
	UpdateTime int64 `json:"updateTime"`
}

type AvatarModuleUpdateReq struct {
	gmeta.Meta `path:"/avatar/module/update" method:"post" tags:"更新角色模块数据"`
	AccountId  int    `p:"account_id" v:"required" dc:"账号id"`
	AvatarId   int    `p:"avatar_id" v:"required" dc:"角色id"`
	ModuleId   int    `p:"module_id" v:"required" dc:"模块id"`
	Data       string `p:"data" v:"required" dc:"模块数据 json格式"`
}

type AvatarModuleRes struct {
	gmeta.Meta `mime:"application/json" example:"{code:0, message:'', data:{avatarId:0, moduleId:0, data:''}"`
	AvatarId   int    `json:"avatarId"`
	ModuleId   int    `json:"moduleId"`
	Data       string `json:"data"`
}

type AvatarModuleQueryReq struct {
	gmeta.Meta `path:"/avatar/module/query" method:"post" tags:"查询角色模块数据"`
	AccountId  int `p:"account_id" v:"required"`
	AvatarId   int `p:"avatar_id" v:"required"`
	ModuleId   int `p:"module_id" v:"required"`
}

type AvatarQueryByteJumpEcpmReq struct {
	gmeta.Meta `path:"/avatar/query/byte_jump/ecpm" method:"post" tags:"查询角色抖音ecpm"`
	AccountId  int    `p:"account_id" v:"required"`
	AppId      string `p:"appId" v:"required"`
}

type AvatarQueryByteJumpEcpmRes struct {
	gmeta.Meta `mime:"application/json" example:"{code:0, message:'', data:{}}"`
	Cost       float64 `json:"cost"`
	Total      int     `json:"total"`
}

type AvatarStoreSetReq struct {
	gmeta.Meta  `path:"/avatar/store/set" method:"post" tags:"设置角色存储数据(缓存)"`
	AccountId   string `p:"account_id" v:"required"`
	StoreKey    string `p:"storeKey" v:"required"`
	StoreValue  string `p:"storeValue" v:"required"`
	StoreLength int    `p:"storeLength" `
	StoreExpire int    `p:"storeExpire" `
}

type AvatarStoreSetRes struct {
	gmeta.Meta `mime:"application/json" example:"{code:0, message:'', data:{}}"`
}

type AvatarStoreGetReq struct {
	gmeta.Meta `path:"/avatar/store/get" method:"post" tags:"获取角色存储数据(缓存)"`
	AccountId  string `p:"account_id" v:"required"`
	StoreKey   string `p:"storeKey" v:"required"`
}

type AvatarStoreGetRes struct {
	gmeta.Meta `mime:"application/json" example:"{code:0, message:'', data:[]}"`
}

type AvatarStoreDelReq struct {
	gmeta.Meta `path:"/avatar/store/del" method:"post" tags:"删除角色存储数据(缓存)"`
	AccountId  string   `p:"account_id" v:"required"`
	StoreKey   string   `p:"storeKey" v:"required"`
	StoreValue []string `p:"storeValue" v:"required"`
}

type AvatarStoreDelRes struct {
	gmeta.Meta `mime:"application/json" example:"{code:0, message:'', data:{}}"`
}

type AvatarQRCodeReq struct {
	gmeta.Meta `path:"/avatar/qrcode" method:"post" tags:"微信生成二维码"`
	AccountId  int    `p:"account_id" v:"required"`
	Scene      string `p:"scene" v:"required"`
	EnvVersion string `p:"env_version" v:"required"`
	Width      int    `p:"width" v:"required" default:"280"`
	AppId      string `p:"appId" v:"required"`
}

type AvatarQRCodeRes struct {
	gmeta.Meta `mime:"application/json" example:"{code:0, message:'', data:{}}"`
	Data       []byte `json:"data"`
}

type AvatarSubscribeReq struct {
	gmeta.Meta       `path:"/avatar/subscribe" method:"post" tags:"订阅"`
	AccountId        int    `p:"account_id" v:"required"`
	AvatarId         int    `p:"avatar_id" v:"required"`
	SubscribeType    int    `p:"subscribeType" v:"required"`
	ConditionType    int    `p:"conditionType" `
	ConditionSubType int    `p:"conditionSubType" `
	ConditionValue   int    `p:"conditionValue" v:"required"`
	SendTime         string `p:"sendTime" v:"required"`
}

type AvatarSubscribeRes struct {
	gmeta.Meta `mime:"application/json" example:"{code:0, message:'', data:{}}"`
}
